92d76df015db99119124d4ab272bac78979c20eb,languagetool-language-modules/uk/src/main/java/org/languagetool/tagging/uk/CompoundTagger.java,CompoundTagger,oAdjMatch,#String#List#String#,579

Before Change


    List<AnalyzedToken> newAnalyzedTokens = new ArrayList<>(analyzedTokens.size());

    String leftBase = leftWord.substring(0, leftWord.length()-1);
    if( ! LEFT_O_ADJ.contains(leftWord.toLowerCase(conversionLocale))
        && tagBothCases(leftWord).isEmpty()            // Ñ?Ñ?краво длÑ? Ñ?Ñ?краво-барвиÑ?тий
        && tagBothCases(oToYj(leftWord)).isEmpty()  // кричущий длÑ? кричуще-Ñ?Ñ?кравий
        && tagBothCases(leftBase).isEmpty()         // паталог длÑ? паталого-анатомічний
        && tagBothCases(leftBase + "а").isEmpty() ) // два длÑ? дво-триметровий
      return null;

After Change


    String leftBase = leftWord.substring(0, leftWord.length()-1);
    
    String extraTag = "";
    if( ! LEFT_O_ADJ.contains(leftWord.toLowerCase(conversionLocale)) ) {

    List<TaggedWord> taggedWords = tagBothCases(leftWord);            // Ñ?Ñ?краво длÑ? Ñ?Ñ?краво-барвиÑ?тий
    if( taggedWords.isEmpty() ) {
      taggedWords = tagBothCases(oToYj(leftWord));  // кричущий длÑ? кричуще-Ñ?Ñ?кравий
    }
    if( taggedWords.isEmpty() ) {
      taggedWords = tagBothCases(leftBase);         // паталог длÑ? паталого-анатомічний
    }
    if( taggedWords.isEmpty() ) {
      taggedWords = tagBothCases(leftBase + "а");   // два длÑ? дво-триметровий
    }
    if( taggedWords.isEmpty() )
      return null;
      
      
    for(TaggedWord taggedWord: taggedWords) {
      if( taggedWord.getPosTag().contains(":bad") ) {
        extraTag = ":bad";
        break;